你好啊，欢迎查看加加编程语言成就书。加加是一款中文编程语言，其第一版诞生于2020年5月份左右，作为我的毕业设计出现在答辩环节中。其从第一行代码开始，也仅仅是几个月时间，其完成度对我而言，可以说非常完美了。这可以说是我第一次从0到尾每一行代码都是经过自己深思熟虑后写下来的，同时使用的还是c++开发，这种经历可以说完全不可多得。

所以加加在一个新手手中诞生，它的缺点和应用场景完美暴露在我眼前。语法过于刻意，牺牲了很多便利性；应用场景非常单一，需要多方面考虑一下其应用场景；技术含量不够高，有些高级的编译技术未用上，这也是由于水平有限导致。综上所述，在这一版加加，我采用了c语言进行重写，更新了语法，确定了应用场景，并准备往里面添加多线程的功能。

关于加加的代码风格和项目结构，如下所示:
\begin{enumerate}
\item 私有命名，以下划线\_开头为私有函数、私有变量、私有类型命名，意味着，非该函数的开发者谨慎调用和修改，一般作用于static函数和static变量。
  一般私有函数、私有变量、私有类型，其特点是开发者被修改被删除概率极高，功能不定，值易变。
\item AaBb\_ 大驼峰作为c前缀（广义上的名称空间），全部作用，包括宏，函数，全局变量，结构体，typedef等等。
  同时，名称空间也继承私有命名方式。\_AaBb为AaBb名称空间的私有。
\item 结构体里面使用\_\_（双下划线）开头的变量为可调用变量（广义上的函数句柄）。
  同时，结构体继承私有命名方式。所以私有函数句柄应以\_\_\_（三下划线）作为其命名方式。
\item 局部变量，函数参数，结构体变量，统一使用 aaa\_bbb\_ccc 小写+\_的作法，而非大小驼峰。
  同时，局部变量继承私有命名方式。
  一些常见的局部变量命名：xxx\_hanle为函数句柄，即函数指针；xxx\_automat为自动机。
\item typedef，普通类型都会以\_t作为结尾，指针类型都会以\_pt作为结尾，函数指针类型都会以\_fn作为结尾，请注意。
\item 注释全部采用 /* */ 的注释方式，全部统一采取中文注释;采取上注释下代码，前代码后注释的结构。
\item 所有头文件统一放入include文件夹，源文件统一放入src文件夹当中。
\item 所有文件命名采取\quad 项目名称\_aa\_bb\quad 的命名方式。
\item 基本整型类型全部采用\#include<stdint.h>中的整型定义法。
\end{enumerate}

最后，本成就书将会着重解释每个模块的功能，将更多精力放在加加编译器的设计上。
